<?

class CLogin
{
   	/*Datos puestos por el usuario*/
   	var $codigorc;
    var $codigocuenta;
    var $particion;
    var $password;
    var $objetivo;
    var $codigoFlota;
   	var $alias;
	var $codigoDealer;	
   	var $email;
	var $isBykom; //indica si el login se realizo entrando desde Bykom o desde Web
	
	/*Datos de la DB*/
	var $cuentaFk;
   	var $esFlota;
   	var $passwordDB;
   	var $objetivoDB;
   	var $mail;
   	var $errorCode = 0;
   	var $habilitado;
   	var $contadorLoginFail = 0;
   	var $ultimaFecha;
   	var $monitoreoWeb;
   	var $usuariosLogueados = 0;
   	var $tablaId;
	var $envioSMS;
	var $envioGPRS;
	var $label;
	var $labelCuenta;
	var $imagen;
	var $isPRO;
	var $chat;
	var $limitConnect; 
	var $accessPhoneGeneral;
	var $accessPhoneCuenta;
	var $AVL_MAP_SERVER_IP;
	var $AVL_MAP_SERVER_IP_LOCAL;
	var $AVL_MAP_SERVER_PORT;
	var $SERVER_URL;
	var $SERVER_PORT;
	var $SERVER_CONTEXT;
	var $MAPAS_DISPONIBLES;
	var $GEOCODING;
	var $REVERSE_GEOCODING;
	var $ROUTING;
	
	var $PERMISOSdealer;
		/*------------------------------------* 
		|  0: Monitorea			              |
		|  1: Envia Comandos GPRS             |
		|  2: Envia Comandos SMS              |
		|  3: Gestiona puntos (ve/modifica)   |
		|  4: Gestiona Zonas (ve/modifica)    |
		|  5: Gestiona logistica (ve/modifica)|
		|  6: Visualiza contactos			  |
		|  7: Modifica contactos			  |
		|  8: Configura eventos por moviles   |
		|  9: Gestiona Rutas				  |
		*-------------------------------------*/
	var $PERMISOSAlias;
		/*------------------------------------* 
		|  0: Monitorea			              |
		|  1: Envia Comandos GPRS             |
		|  2: Envia Comandos SMS              |
		|  3: Visualiza Reportes			  |	
		|  4: Visualiza Puntos 				  |	
		|  5: Visualiza Zonas 				  |
		|  6: Visualiza Contactos de moviles  |
		|  7: Visualiza Logistica			  |
		|  8: Modifica Puntos  				  |
		|  9: Modifica Zonas  				  |
		|  10: Modifica Contactos de moviles  |
		|  11: Modifica Logistica			  |
		|  12: Accede Movil					  |
		|  13: Accede Setup					  |
		|  14: Accede Eventos				  |
		|  15: Accede Usuario				  |
		|  16: Accede Facturas				  |
		|  17: Accede Zonas					  |
		|  18: Accede Contactos				  |
		|  19: Accede Horarios				  |
		|  20: Habilitar Fijos				  |
		|  21: Habilitar Movil				  |
		|  22: Habilitar Flota				  |
		|  23: Habilitar RC					  |
		|  24: Habilitar RCFijo				  |
		|  25: Visualiza Rutas				  |
		|  26: Modifica Rutas				  |
		|  27: Visualiza Agenda Gral		  |
		|  28: Modifica Agenda Gral			  |
		*------------------------------------*/
	var $PERMISOS;
		/*------------------------------------* 
		|  0: Organiza Moviles                |
		|  1: Monitorea                       |
		|  2: Envia Comandos GPRS             |
		|  3: Envia Comandos SMS              |
		|  4: Visualiza puntos                |
		|  5: Visualiza Zonas                 |
		|  6: Visualiza logistica             |
		|  7: Modifica puntos                 |
		|  8: Modifica Zonas                  |
		|  9: Modifica logistica              |
		|  10: Habilita chat                  |
		|  11: Activa/desactiva moviles       |
		|  12: Visualiza tablero              |
		|  13: Accede a SETUP                 |	
		|  14: Visualiza contacto general     |
		|  15: Modifica contacto general      |	
		|  16: Visualiza contacto de movil    |
		|  17: Modifica contacto de movil     |
		|  18: Visualiza gestor de direcciones|
		|  19: Configura eventos por moviles  |
		|  20: Visualiza Rutas				  |
		|  21: Modifica Rutas				  |
		*-------------------------------------*/

	function __construct()
    {
		$this->PERMISOS = array();
	}
	   	   	
   	function getLabelLogin() {
		if ($this->codigoDealer != null && trim($this->labelCuenta) != '') return $this->labelCuenta;
   		if ($this->alias != null && trim($this->alias) != '') return $this->alias;
   		if ($this->esFlota == 1 && $this->codigoFlota != null && trim($this->codigoFlota) != '') {
   			return $this->codigoFlota;
   		}
   		if ($this->esFlota == 0) {
   			$resultado = $this->codigorc . " - " . $this->codigocuenta;
   			if ($this->objetivo == 1) {
   				$resultado = $resultado . " - " .$this->particion;
   			}
   			return $resultado;
   		}
   		return "Usuario";
   	}
	
	function generarPermisos(){
							  //0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21
		$this->PERMISOS = array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); //inicializo array sin ningun permiso.
		//VERSION NORMAL
		if ((!$this->isBykom)&&(!$this->isPRO)){
					 			  //0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21
			$this->PERMISOS = array(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0);
		}
		//VERSION PRO
		if ((!$this->isBykom)&&($this->isPRO)){
					 			  //0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21
			$this->PERMISOS = array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
		}
		//VERSION BYKOM
		if ($this->isBykom){
					 			  //0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21
			$this->PERMISOS = array(0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0);
		}
		//SI ADEMAS ES UN OBJETIVO ALIAS:
		if ($this->objetivo==4){
					 			   //0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21
			//$permisosALIAS = array(0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1);
			$permisosALIAS   = array(0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
			//CRUZO LOS PERMISOS GRALES PARA CTAS ALIAS CON LOS PERSONALIZADOS DE ESTA CUENTA
			$permisosALIAS[1] = ($permisosALIAS[1] && $this->PERMISOSAlias[0]);//Monitorea
			$permisosALIAS[2] = ($permisosALIAS[2] && $this->PERMISOSAlias[1]);//Envia Comandos GPRS
			$permisosALIAS[3] = ($permisosALIAS[3] && $this->PERMISOSAlias[2]);//Envia Comandos SMS
			$permisosALIAS[4] = ($permisosALIAS[4] && $this->PERMISOSAlias[4]);//Visualiza puntos
			$permisosALIAS[5] = ($permisosALIAS[5] && $this->PERMISOSAlias[5]);//Visualiza zonas
			$permisosALIAS[6] = ($permisosALIAS[6] && $this->PERMISOSAlias[7]);//Visualiza logistica
			$permisosALIAS[7] = ($permisosALIAS[7] && $this->PERMISOSAlias[8]);//Modifica puntos
			$permisosALIAS[8] = ($permisosALIAS[8] && $this->PERMISOSAlias[9]);//Modifica zonas
			$permisosALIAS[9] = ($permisosALIAS[9] && $this->PERMISOSAlias[11]);//Modifica logistica
			$permisosALIAS[13]= ($permisosALIAS[13] && $this->PERMISOSAlias[13]);//Accede Setup
			$permisosALIAS[14]= ($permisosALIAS[14] && $this->PERMISOSAlias[27]);//visualiza contacto general
			$permisosALIAS[15]= ($permisosALIAS[15] && $this->PERMISOSAlias[28]);//modifica contacto general
			$permisosALIAS[16]= ($permisosALIAS[16] && $this->PERMISOSAlias[6]);//visualiza contacto de movil
			$permisosALIAS[17]= ($permisosALIAS[17] && $this->PERMISOSAlias[10]);//modificar contacto de movil
			$permisosALIAS[20]= ($permisosALIAS[20] && $this->PERMISOSAlias[25]);//Visualiza rutas
			$permisosALIAS[21]= ($permisosALIAS[21] && $this->PERMISOSAlias[26]);//Modifica rutas
			
			for($i = 0; $i<count($this->PERMISOS); $i++){
				$this->PERMISOS[$i] = ($this->PERMISOS[$i]&&$permisosALIAS[$i]);
			}
		}
		//SI ADEMAS ES UN OBJETIVODB MOVIL (No es flota):
		if ($this->objetivoDB==2){
			 		 			//0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21
			$permisosFIJO = array(0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
			for($i = 0; $i<count($this->PERMISOS); $i++){
				$this->PERMISOS[$i] = ($this->PERMISOS[$i]&&$permisosFIJO[$i]);
			}
		}
		//SI ADEMAS ES UN OBJETIVO DEALER DEBO PERSONALIZAR LOS PERMISOS
		if ($this->objetivo==5 || $this->objetivoDB == 5){
								  //0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21
			$permisosDEALER = array(0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
			//CRUZO LOS PERMISOS GRALES PARA CTAS DEALER CON LOS PERSONALIZADOS DE ESTA CUENTA
			$permisosDEALER[1] = ($permisosDEALER[1] && $this->PERMISOSdealer[0]);//Monitorea
			$permisosDEALER[2] = ($permisosDEALER[2] && $this->PERMISOSdealer[1]);//Envia Comandos GPRS
			$permisosDEALER[3] = ($permisosDEALER[3] && $this->PERMISOSdealer[2]);//Envia Comandos SMS
			$permisosDEALER[4] = ($permisosDEALER[4] && $this->PERMISOSdealer[3]);//Visualiza puntos
			$permisosDEALER[5] = ($permisosDEALER[5] && $this->PERMISOSdealer[4]);//Visualiza zonas
			$permisosDEALER[6] = ($permisosDEALER[6] && $this->PERMISOSdealer[5]);//Visualiza logistica
			$permisosDEALER[7] = ($permisosDEALER[7] && $this->PERMISOSdealer[3]);//Modifica puntos
			$permisosDEALER[8] = ($permisosDEALER[8] && $this->PERMISOSdealer[4]);//Modifica zonas
			$permisosDEALER[9] = ($permisosDEALER[9] && $this->PERMISOSdealer[5]);//Modifica logistica
			$permisosDEALER[16]= ($permisosDEALER[16] && $this->PERMISOSdealer[6]);//Visualiza Contactos movil
			$permisosDEALER[17]= ($permisosDEALER[17] && $this->PERMISOSdealer[7]);//Modifica Contactos movil
			$permisosDEALER[19]= ($permisosDEALER[19] && $this->PERMISOSdealer[8]);//configura eventos por moviles
			$permisosDEALER[20]= ($permisosDEALER[20] && $this->PERMISOSdealer[9]);//Visualiza rutas
			$permisosDEALER[21]= ($permisosDEALER[21] && $this->PERMISOSdealer[9]);//Modifica rutas
			for($i = 0; $i<count($this->PERMISOS); $i++){
				$this->PERMISOS[$i] = ($this->PERMISOS[$i]&&$permisosDEALER[$i]);
			}
		}
		
		if ($this->objetivoDB==1 && !$this->isBykom){
			$this->PERMISOS[0] = 0;
			$this->PERMISOS[2] = 0;
			$this->PERMISOS[3] = 0;
			$this->PERMISOS[5] = 0;
			$this->PERMISOS[6] = 0;
			$this->PERMISOS[8] = 0;
			$this->PERMISOS[9] = 0;
			$this->PERMISOS[11] = 0;
			$this->PERMISOS[12] = 0;
			$this->PERMISOS[20] = 0;
			$this->PERMISOS[21] = 0;
			
		}
		//MATCHEOS PERSONALIZADOS:
		//MONITOREA:
		$this->PERMISOS[1] = ($this->PERMISOS[1]&&$this->monitoreoWeb);
		//ENVIA COMANDOS GPRS:
		$this->PERMISOS[2] = ($this->PERMISOS[2]&&$this->envioGPRS);
		//ENVIA COMANDOS SMS:
		$this->PERMISOS[3] = ($this->PERMISOS[3]&&$this->envioSMS);
		//CHAT HABILITADO:
		$this->PERMISOS[10]= ($this->PERMISOS[10]&&$this->chat);
		//NO PERMITE VER/MODIFICAR LOGISTICA SI NO PERMITE VER ZONAS
		$this->PERMISOS[6] = ($this->PERMISOS[6] && ($this->PERMISOS[5] || $this->PERMISOS[4] || $this->PERMISOS[20]) );
		$this->PERMISOS[9] = ($this->PERMISOS[9] && ($this->PERMISOS[5] || $this->PERMISOS[4] || $this->PERMISOS[20]) );
	} 
}
?>